package com.review.Demo_14_Future模式;

public class FutureClient {

	public Data request(final String queryStr){//因为此参数需要在线程中使用，所以用final修饰
		//1 我想要一个代理对象（Data接口的实现类）先返回给发送请求的客户端，告诉他请求已经接收到，可以做其他的事情
		final FutureData futureData = new FutureData();//包装类对象
		//2 启动一个新的线程，去加载真实的数据，传递给这个代理对象
		new Thread(new Runnable() {
			@Override
			public void run() {
				//3 这个新的线程可以去慢慢的加载真实对象，然后传递给代理对象
				RealData realData = new RealData(queryStr);//加载真是数据的过程
				futureData.setRealData(realData);
			}
		}).start();
		
		return futureData;//直接返回包装类
	}
	
}
